#ifndef STUDENT_INFO_H
#define STUDENT_INFO_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ID 20
#define MAX_NAME 50
#define MAX_CLASS 50

// 学生结构体
typedef struct Student {
    char id[MAX_ID];
    char name[MAX_NAME];
    char class_name[MAX_CLASS];
    struct Student *next;
} Student;

// 函数声明
// 1. 创建学生节点
Student* createStudent(const char *id, const char *name, const char *class_name);

// 2. 添加学生到链表
int addStudent(Student **head,  Student *newStu);

// 3. 按学号查找学生
Student* findStudentById(Student *head, const char *id);

// 4. 更新学生信息（按学号）
int updateStudent(Student *head,const  char *id,const  char *newName,const char *newClass);

// 5. 删除学生信息（按学号）
int deleteStudent(Student **head,const char *id);

// 6. 保存学生数据到文件
void saveStudents(Student *head, const char *filename);
// 7. 从文件加载学生数据
void loadStudents(Student **head, const char *filename);

// 8. 打印所有学生信息
void printAllStudents(Student *head);

#endif